package com.bj58.data.emailreports.service;

import java.util.List;

import java.util.Map;

import com.bj58.data.emailreports.model.BWRAllOne;

import com.bj58.data.emailreports.model.BWRAllLineInc;
import com.bj58.data.emailreports.model.BWRAllOneJL;
import com.bj58.data.emailreports.model.BWRJzFluxFunnel;
import com.bj58.data.emailreports.model.BWRLineAccount;
import com.bj58.data.emailreports.model.BWRLineCityCate;
import com.bj58.data.emailreports.model.BWRLineCusTran;
import com.bj58.data.emailreports.model.BWRLineFlux;
import com.bj58.data.emailreports.model.BWRLineJTChange;
import com.bj58.data.emailreports.model.BWRLineSPIncome;
import com.bj58.data.emailreports.model.WRCusFunnelVo;

import com.bj58.data.emailreports.model.BMRNaturalFluxData;
import com.bj58.data.emailreports.model.BMRDemandAnalysisData;
import com.bj58.data.emailreports.model.onlineProductIncome;

public interface BusiMonthReportService {
	
	/**总体 - 进度
	 * @param dateList
	 * @return
	 * @throws Exception
	 */
	public List<BWRAllOne> getBMRAllOneList (String searchDate)throws Exception;
	
	/**总体 - 简历进度
	 * @param dateList
	 * @return
	 * @throws Exception
	 */
	public Map<String,BWRAllOneJL> getBMRAllOneJLList (List<String> dateList)throws Exception;
	
	/**总体-分业务-收入趋势
	 * @param dateList
	 * @return
	 * @throws Exception
	 */
	public List<BWRAllLineInc> getBMRAllLineIncList(List<String> dateList)throws Exception;
	
	/**总体-分业务-流量趋势
	 * @param dateList
	 * @return
	 * @throws Exception
	 */
	public Map<String,List<BWRLineFlux>> getBMRAllLineFluxList(List<String> dateList)throws Exception;
	
	/**总体-分业务-页面类型流量趋势
	 * @param dateList
	 * @return
	 * @throws Exception
	 */
	public Map<String,List<BWRLineFlux>> getBMRLinePageFluxList(List<String> dateList)throws Exception;
	
	
	/**总体-分业务-精准各平台流量趋势
	 * @param dateList
	 * @return
	 * @throws Exception
	 */
	public Map<String,List<BWRLineFlux>> getBMRLineJingzhunFluxList(List<String> dateList)throws Exception;
	
	
	/**分业务线 余额客户结构
	 * @throws Exception
	 */
	public List<WRCusFunnelVo> cusBanlanceDatas(List<String> dateList,String channel)throws Exception;
	
	/**频道 余额消耗周期
	 * @throws Exception
	 */
	public List<String> consumCycleData(String yesterday,String lastWeek,String channel,String cate1,String cate2)throws Exception;
	
	/**城市监控
	 * @param dateList
	 * @return
	 * @throws Exception
	 */
	public Map<String,List<BWRLineCityCate>>  cityDatas (List<String> dateList)throws Exception;
	
	/**类别监控
	 * @param dateList
	 * @return
	 * @throws Exception
	 */
	public Map<String,List<BWRLineCityCate>>  cateDatas (List<String> dateList)throws Exception;
	/**分平台收入变化
	 * @param dateList
	 * @return
	 * @throws Exception
	 */
	public Map<String,List<BWRLineSPIncome>>  linePlatformIncomeDatas (List<String> dateList)throws Exception;
	
	/**分来源收入变化
	 * @param dateList
	 * @return
	 * @throws Exception
	 */
	public Map<String,List<BWRLineSPIncome>>  lineSourceIncomeDatas (List<String> dateList)throws Exception;
	
	/**新增流失客户数据
	 * @param dateList
	 * @return
	 * @throws Exception
	 */
	public Map<String,List<BWRLineCusTran>>  BMRLineCusTranDatas (List<String> dateList)throws Exception;
		
	/**自然流量数据
	 * @param dateList
	 * @return
	 * @throws Exception
	 */
	public Map<String,List<BMRNaturalFluxData>>  BMRNaturalFlux (List<String> dateList)throws Exception;
	
	/**供求分析
	 * @param dateList
	 * @return
	 * @throws Exception
	 */
	public List<BMRDemandAnalysisData> BMRDemandAnalysis (List<String> dateList)throws Exception;
	
	/**在线产品收入对比
	 * @param searchDate
	 * @return
	 * @throws Exception
	 */
	public  Map<String, List<onlineProductIncome>>  getOnlineProductIncome ( String searchDate) throws Exception;
}